// ~ Package Declaration
// ==================================================

package com.wms.data.domain.service;

import java.io.Serializable;
import java.util.List;

import com.wms.data.PaginateModel;

// ~ Comments
// ==================================================

public interface AbstractService<T extends Serializable, PK extends Serializable> extends MaintainService {

	// ~ Static Fields
	// ==================================================

	// ~ Methods
	// ==================================================

	public T findById(PK id);

	public List<T> findAll();
	
	public List<T> findAll(PaginateModel paginateModel);
	
	public List<T> find(T t, PaginateModel paginateModel);
	
	public List<T> find(T t);
	
	public PK save(T t);

	public void update(T t);
	
	public void saveOrUpdate(T t);

	public void delete(T t);
}